package vg.services.data_base_manager.interfaces;

import vg.services.data_base_manager.data.header.AttributeHeader;

public class GraphDataBaseFormat_1_0 {
    // Format version table
    public static final String VERSION_TABLE = "version_table";
    public static final String VERSION_TABLE_ID = "id";
    public static final String VERSION_TABLE_VERSION = "db_format_version";

	// Vertex table
    public static final String VERTEX_TABLE = "vertex";
	public static final String VERTEX_TABLE_ID = "id";
	public static final String VERTEX_TABLE_GRAPH_ID = "graph_id";
	public static final String VERTEX_TABLE_LINK2INNER_GRAPH = "link2inner_graph";
	
	// Edge table
    public static final String EDGE_TABLE = "edge";
	public static final String EDGE_TABLE_ID = "id";
	public static final String EDGE_TABLE_GRAPH_ID = "graph_id";
	public static final String EDGE_TABLE_SRC_VERTEX = "src_id";
	public static final String EDGE_TABLE_TRG_VERTEX = "trg_id";
	
	// Attribute table
    public static final String ATTRIBUTE_TABLE = "attribute";
	public static final String ATTRIBUTE_TABLE_ID = "id";
	public static final String ATTRIBUTE_TABLE_OWNER_ID = "owner_id";
	public static final String ATTRIBUTE_TABLE_OWNER_TYPE = "owner_type";
	public static final String ATTRIBUTE_TABLE_NAME = "name";
	public static final String ATTRIBUTE_TABLE_STRING_VALUE = "string_value";
    public static final String ATTRIBUTE_TABLE_REAL_VALUE = "real_value";
	public static final String ATTRIBUTE_TABLE_VALUE_TYPE = "value_type";

	public static final int ATTRIBUTE_TABLE_VERTEX_OWNER_TYPE = AttributeHeader.VERTEX_OWNER_TYPE;
	public static final int ATTRIBUTE_TABLE_EDGE_OWNER_TYPE = AttributeHeader.EDGE_OWNER_TYPE;
    public static final int ATTRIBUTE_TABLE_GRAPH_OWNER_TYPE = AttributeHeader.GRAPH_OWNER_TYPE;

    public static final int ATTRIBUTE_TABLE_NO_ATTRIBUTE_TYPE = AttributeHeader.NO_ATTRIBUTE_TYPE;
    public static final int ATTRIBUTE_TABLE_STRING_ATTRIBUTE_TYPE = AttributeHeader.STRING_ATTRIBUTE_TYPE;
    public static final int ATTRIBUTE_TABLE_BOOLEAN_ATTRIBUTE_TYPE = AttributeHeader.BOOLEAN_ATTRIBUTE_TYPE;
    public static final int ATTRIBUTE_TABLE_INTEGER_ATTRIBUTE_TYPE = AttributeHeader.INTEGER_ATTRIBUTE_TYPE;
    public static final int ATTRIBUTE_TABLE_DOUBLE_ATTRIBUTE_TYPE = AttributeHeader.DOUBLE_ATTRIBUTE_TYPE;

    // Graph table
    public static final String GRAPH_TABLE = "graph";
	public static final String GRAPH_TABLE_ID = "id";
	public static final String GRAPH_TABLE_MODEL_ID = "model_id";
	public static final String GRAPH_TABLE_DIRECTED = "directed";
    public static final String GRAPH_TABLE_IS_ROOT = "is_root";

	// Graph model table
    public static final String GRAPH_MODEL_TABLE = "graph_model";
	public static final String GRAPH_MODEL_TABLE_ID = "id";
	public static final String GRAPH_MODEL_TABLE_NAME = "name";
}
